// 需求：先读取 a 文件，然后再读取 b 文件，最后再读取 c 文件

// 2. Promise

const fs = require("fs");

function readFile(filePath, ms) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            fs.readFile(filePath, "utf-8", (err, data) => {
                if (err) {
                    // console.log(err);
                    reject(err);
                } else {
                    // console.log(data);
                    resolve(data);
                }
            });
        }, ms);
    });
}

/*
// 先读取 a 文件
readFile("./a.txt", 1000).then(res => {
    console.log(res);
    // 再读取 b 文件
    readFile("./b.txt", 800).then(res => {
        console.log(res);
        // 最后读取 c 文件
        readFile("./c.txt", 500).then(res => {
            console.log(res);
        }).catch(err => {
            console.log(err);
        });
    }).catch(err => {
        console.log(err);
    });
}).catch(err => {
    console.log(err);
});
*/

// 先读取 a 文件
readFile("./a.txt", 1000).then(res => {
    console.log(res);
    // 再读取 b 文件
    return readFile("./b.txt", 800);
}).then(res => {
    console.log(res);
    // 最后读取 c 文件
    return readFile("./c.txt", 500);
}).then(res => {
    console.log(res);
}).catch(err => {
    console.log(err);
});